//width of the regs
`define WIDTH 64
`define AWIDTH 32
`define R_ADDR_W 5
//kinds of the alu cal
`define OP_NUM 16

//npc
`define RST_PC 64'h0000000080000000
//SOC
//`define RST_PC 64'h0000000030000000

//define cal 
`define ADD 16'b0000_0000_0000_0001 
`define SLTU 16'b0000_0000_0000_0010 
`define SLL 16'b0000_0000_0000_0100 
`define XOR 16'b0000_0000_0000_1000 
`define AND 16'b0000_0000_0001_0000 
`define SRA 16'b0000_0000_0010_0000 
`define SUB 16'b0000_0000_0100_0000 
`define OR  16'b0000_0000_1000_0000 
`define SRL 16'b0000_0001_0000_0000 
`define MUL 16'b0000_0010_0000_0000 
`define DIV 16'b0000_0100_0000_0000 
`define REM 16'b0000_1000_0000_0000 
`define DIVU 16'b0001_0000_0000_0000
`define REMU 16'b0010_0000_0000_0000
`define SLT	 16'b0100_0000_0000_0000 
`define MULH 16'b1000_0000_0000_0000 
//define CSRs
`define CSRS_NUM 6
`define MTVEC 12'h305
`define MPC 12'h341
`define MSTATUS 12'h300
`define MCAUSE 12'h342
`define MIE 12'h304
`define MIP 12'h344

//define AXI
`define AXI_SIZE_B 3'b000
`define AXI_SIZE_H 3'b001
`define AXI_SIZE_W 3'b010
`define AXI_SIZE_D 3'b011_
